package actores
{
	// ========================================================================
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	// ========================================================================

	public class Vista
	{
		// ====================================================================
		private var _actor:Actor
		private var _grafico:DisplayObject
		private var _contenedor:DisplayObjectContainer
		// ====================================================================

		// ====================================================================
		// CONSTRUCTOR
		// ====================================================================

		// --------------------------------------------------------------------
		public function Vista(
			actor:Actor,
			grafico:DisplayObject,
			contenedor:DisplayObjectContainer
		)
		{
			_actor = actor
			_grafico = grafico
			_contenedor = contenedor

			inicializar()
			escucharEventosDelModelo()
		}

		// ====================================================================
		// PROPERTIES
		// ====================================================================

		// --------------------------------------------------------------------
		public function get actor():Actor { return _actor }
		// --------------------------------------------------------------------
		public function get grafico():DisplayObject { return _grafico }
		// --------------------------------------------------------------------
		public function get contenedor():DisplayObjectContainer { return _contenedor }

		// ====================================================================
		// FUNCIONES
		// ====================================================================

		// --------------------------------------------------------------------
		protected function inicializar():void {}
		// --------------------------------------------------------------------
		protected function escucharEventosDelModelo():void {}

		// --------------------------------------------------------------------
		public function agregarAlContenedor():void { _contenedor.addChild(_grafico) }
		// --------------------------------------------------------------------
		public function quitarDelContenedor():void { _contenedor.removeChild(_grafico) }
	}
}